package com.br.imovel.controller;

import com.br.imovel.model.Usuario;
import java.util.List;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;

@LocalBean
@Stateless
public class UsuarioBean {

    @PersistenceContext
    private EntityManager em;

    public List<Usuario> findAll() {
        TypedQuery<Usuario> query = em.createQuery("SELECT u FROM Usuario ORDER BY u.id ASC", Usuario.class);
        return query.getResultList();
    }

    public void save(Usuario usuario) {
        em.persist(usuario);
    }

    public void update(Usuario usuario) {
        em.merge(usuario);
    }

    public void remove(Usuario usuario) {
        if (usuario != null && usuario.getEmail() != null && em.contains(usuario)) {
            em.remove(usuario);
        }
    }

    

    public Usuario findByLoginSenha(String login, String senha) {
        Usuario usuario = null;
        try {
            TypedQuery<Usuario> query = em.createQuery("SELECT u FROM Usuario u where u.login = :login and u.senha = :senha", Usuario.class);
            query.setParameter("login", login);
            query.setParameter("senha", senha);
            //query.setMaxResults(1);
            usuario = query.getResultList().get(0);
        } catch (Exception e) {
            System.out.print("Erro" + e.getMessage());
        }


        return usuario;
    }

    public void detach(Usuario usuario) {
        em.detach(usuario);
    }
}
